package com.note.chh.notebook.Uitls;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 时间格式转换
 * @author Administrator
 *
 */
public class Dateformat {
	/**
	 * 获得当前的系统时间
	 * @return
	 */
	public static long currentTime(){
		
		return System.currentTimeMillis();
	} 
	
	/**
	 * date类型转换为String类型
	 * @param data
	 * @param formatType
	 * @return
	 */
	// formatType格式为yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒
    // data Date类型的时间
    public static String dateToString(Date data, String formatType) {
        return new SimpleDateFormat(formatType).format(data);
    }
    
    /**
     * long类型转换为String类型
     */
    // currentTime要转换的long类型的时间
    // formatType要转换的string类型的时间格式
    public static String longToString(long currentTime, String formatType)
            throws ParseException {
        Date date = longToDate(currentTime, formatType); // long类型转成Date类型
        String strTime = dateToString(date, formatType); // date类型转成String
        return strTime;
    }
    
    /**
     * string类型转换为date类型
     */
    // strTime要转换的string类型的时间，formatType要转换的格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日
    // HH时mm分ss秒，
    // strTime的时间格式必须要与formatType的时间格式相同
    public static Date stringToDate(String strTime, String formatType)
            throws ParseException {
        SimpleDateFormat formatter = new SimpleDateFormat(formatType);
        Date date = null;
        date = formatter.parse(strTime);
        return date;
    }
    /**
     * long转换为Date类型
     */
    // currentTime要转换的long类型的时间
    // formatType要转换的时间格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日 HH时mm分ss秒
    public static Date longToDate(long currentTime, String formatType)
    throws ParseException {
    Date dateOld = new Date(currentTime); // 根据long类型的毫秒数生命一个date类型的时间
    String sDateTime = dateToString(dateOld, formatType); // 把date类型的时间转换为string
    Date date = stringToDate(sDateTime, formatType); // 把String类型转换为Date类型
    return date;
    }
    /**
     * String类型转换为long类型
     */
 // strTime要转换的String类型的时间
    // formatType时间格式
    // strTime的时间格式和formatType的时间格式必须相同
    public static long stringToLong(String strTime, String formatType)
            throws ParseException {
        Date date = stringToDate(strTime, formatType); // String类型转成date类型
        if (date == null) {
            return 0;
        } else {
            long currentTime = dateToLong(date); // date类型转成long类型
            return currentTime;
        }
    }
    /**
     * date类型转换为long类型
     */
    // date要转换的date类型的时间
    public static long dateToLong(Date date) {
        return date.getTime();
    }
    
    
    /**
     * 将long类型的时间转换为日-时-分
     * @return
     */
    public static String ToDayHourMinute(long time){
    	int time1 = (int) (time/(1000*60));//分
		if (time1==60) {
			return "0-1-0";
		}else if(time1<60){
			return "0-0-"+time1;
		}else{
			int time2 = time1/60;//时
			int time3 = time1%60;//分
			if (time2==24) {
				return "1-0-"+time3;
			}else if(time2<24){
				return "0-"+time2+"-"+time3;
			}else{
				int time4 = time2/24;//天
				int time5 = time2%24;//时
				return time4+"-"+time5+"-"+time3;
			}
		}
    }

    /**
     * 将long类型的时间转换为日-时-分-秒
     * @return
     */
    public static String ToDayHourMinuteSecond(long time){
        int time1 = (int) (time/(1000*60));//分
        int time0 = (int) ((time%(1000*60))/1000);//秒
        if (time1==60) {
            return "0-1-0-"+time0;
        }else if(time1<60){
            return "0-0-"+time1+"-"+time0;
        }else{
            int time2 = time1/60;//时
            int time3 = time1%60;//分
            if (time2==24) {
                return "1-0-"+time3+"-"+time0;
            }else if(time2<24){
                return "0-"+time2+"-"+time3+"-"+time0;
            }else{
                int time4 = time2/24;//天
                int time5 = time2%24;//时
                return time4+"-"+time5+"-"+time3+"-"+time0;
            }
        }
    }
}
